from src.utils.akcache import Cache
import akshare as ak
import pandas as pd

ac = Cache()
ac.start_date = "2000-01-01"

#道琼斯指数
dji_df = ac.index_us_stock_sina(symbol=".DJI")

#黄金连续
gold_df = ac.futures_main_sina(symbol="AU0")

#显示形状
print(dji_df.shape)
print(gold_df.shape)

#指数=道指/黄金

# 按日期排序
dji_df = dji_df.sort_values('日期')
gold_df = gold_df.sort_values('日期')

# 合并数据，按日期对齐
merged_df = pd.merge(dji_df, gold_df, on='日期', how='inner', suffixes=('_道指', '_黄金'))

# 计算道琼斯指数黄金计价 = 道琼斯指数 / 黄金价格
merged_df['道琼斯指数黄金计价'] = merged_df['收盘价_道指'] / merged_df['收盘价_黄金']

# 选择需要的列
result_df = merged_df[['日期', '收盘价_道指', '收盘价_黄金', '道琼斯指数黄金计价']].copy()

# 重命名列名使其更清晰
result_df.columns = ['日期', '道琼斯指数', '黄金价格', '道琼斯指数黄金计价']

print("\n计算结果预览:")
print(result_df.head(10))

print(f"\n数据范围: {result_df['日期'].min()} 到 {result_df['日期'].max()}")
print(f"有效数据点数量: {len(result_df)}")

#输出结果到data/temp

result_df.to_csv('data/temp/index_DJI_to_gold.csv', index=False, encoding='utf-8-sig')




